window: fallback to window muxer if no widget has focus
authorChristian Hergert <christian@hergert.me>
Tue, 9 Dec 2014 04:19:23 +0000 (20:19 -0800)
committerChristian Hergert <christian@hergert.me>
Tue, 9 Dec 2014 04:19:33 +0000 (20:19 -0800)
This ensures that we can still match accelerators for the window even
if no widget currently has focus.

gtk/gtkwindow.c

index 842a5ff0aceac0f4ec90851fc9024e2618087989..8394fc4546a1c9e2b32182b5560621391a5664dc 100644 (file)
@@ -11214,10 +11214,16 @@ gtk_window_activate_key (GtkWindow   *window,
 
               if (window->priv->application)
                 {
-                  GtkWidget *focused_widget = gtk_window_get_focus (window);
-                  if (focused_widget == NULL)
-                    return FALSE;
-                  GtkActionMuxer *muxer = _gtk_widget_get_action_muxer (focused_widget, FALSE);
+                  GtkWidget *focused_widget;
+                  GtkActionMuxer *muxer;
+
+                  focused_widget = gtk_window_get_focus (window);
+
+                  if (focused_widget)
+                    muxer = _gtk_widget_get_action_muxer (focused_widget, FALSE);
+                  else
+                    muxer = _gtk_widget_get_action_muxer (GTK_WIDGET (window), FALSE);
+
                   if (muxer == NULL)
                     return FALSE;